namespace OasisCiq.Xnal
{
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using CommonTypes;
    using External;
    using Xal;
    using XS;

    /// <summary>
    /// This is a specialised container to combine name and address for postal purposes,
    /// e.g. a label on an envelope that has two parts, an addressee and the address.
    /// </summary>
    public class PostalLabel : IDataQualityGroup, IValidityDateGroup, ILanguageCodeGroup, IExtendedAttributes
    {
        public ICollection<Addressee> Addressees { get; set; }

        /// <summary>
        /// Required!
        /// </summary>
        public AddressType Address { get; set; }

        /// <summary>
        /// Status of the entity. e.g. Old, Current, Inactive, Active, etc
        /// </summary>
        public StatusList Status { get; set; }

        public XSDateTime DateValidFrom { get; set; }

        public XSDateTime DateValidTo { get; set; }

        public DataQualityTypeList DataQualityType { get; set; }

        public XSDateTime ValidFrom { get; set; }

        public XSDateTime ValidTo { get; set; }

        public XSLanguage LanguageCode { get; set; }

        public NameValueCollection ExtendedAttributes { get; set; }
    }
}